package com.sale.system.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sale.common.mybatis.core.mapper.BaseMapperPlus;
import com.sale.system.domain.PrintDictionary;
import com.sale.system.domain.SysPrintTemplate;
import com.sale.system.domain.SysTagSummary;
import com.sale.system.domain.dto.SysPrintTemplateDto;
import com.sale.system.domain.vo.DefaultValueVo;
import com.sale.system.domain.vo.SysPrintTemplateVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description
 * @Param
 * @Date
 * @Author hl
 **/
public interface SysPrintTemplateMapper extends BaseMapperPlus<SysPrintTemplateMapper, SysPrintTemplate, SysPrintTemplate> {

    /**
     * 打印模板列表
     *
     * @param sysPrintTemplateVo 打印模板信息
     * @return 打印模板集合
     */
    Page<SysPrintTemplateDto> selectPrintTemplateList(@Param("sysPrintTemplateVo") SysPrintTemplateVo sysPrintTemplateVo, @Param("page") Page<SysPrintTemplateDto> page);

    /**
     * 新增模板列表
     *
     * @param sysPrintTemplate 打印模板信息
     * @return 1 成功 0 失败
     */
    int insertPrintTemplate(SysPrintTemplate sysPrintTemplate);

    /**
     * 批量删除模板信息
     *
     * @param printIdS id集合
     * @return 1 成功 0 失败
     */
    int deletePrintTemplate(String[] printIdS);

    /**
     * 修改模板信息
     *
     * @param sysPrintTemplate id集合
     * @return 1 成功 0 失败
     */
    int updatePrintTemplateEdit(SysPrintTemplate sysPrintTemplate);

    /**
     * 返回JSON
     *
     * @param printId id集合
     * @return String
     */
    String getPrintTemplateConfig(long printId);

    /**
     * 返回模板字段
     *
     * @param printCorrelation id集合
     * @return SysTagSummary
     */
    List<SysTagSummary> getPrintTemplateDetails(long printCorrelation);

    /**
     * 根据类别查出对应模板列表
     * @param type
     * @return
     */
    List<SysPrintTemplateDto> selectList(int type);

    /**
     * 通过模板id新增字段
     * @param list
     * @return 1 成功 0 失败
     */
    int insertPrintDictionary(@Param("list") List<PrintDictionary> list);

    /**
     * 通过模板id删除字典
     * @param printId
     * @return void
     */
    void deletePrintDictionary(long printId);

    /**
     * 删除
     * @param printCorrelation
     * @return
     */
    Integer delPrintDictionary(long printCorrelation);

    /**
     * 通过id获取数据
     */
    SysPrintTemplateDto getDataById(Long id);

    /**
     * 根据id修改默认状态
     */
    int updateDefaultValue(DefaultValueVo defaultValueVo);

    /**
     * 不分页打印列表
     * @param sysPrintTemplateVo
     * @return
     */
    List<SysPrintTemplateDto> selectPrintTemplateListNotPage(@Param("sysPrintTemplateVo") SysPrintTemplateVo sysPrintTemplateVo);
}


































